01
什么是UNIAPP,介紹UNIAPP 用途和技術(shù)基本原理
1. uni-app 是一個使用 Vue.js 開發(fā)所有前端應(yīng)用的框架,開發(fā)者編寫一套代碼,可發(fā)布到iOS、Android、H5、以及各種小程序(微信/支付寶/百度/頭條/QQ/釘釘/淘寶)、快應(yīng)用等多個平臺。
2. 據(jù) DCloud 稱, uni-app 在手,做啥都不愁。即使不跨端,uni-app也是更好的小程序開發(fā)框架、更好的App跨平臺框架、更方便的H5開發(fā)框架。不管領(lǐng)導(dǎo)安排什么樣的項目,都可以快速交付,不需要轉(zhuǎn)換開發(fā)思維、不需要更改開發(fā)習慣。
3. 據(jù) DCloud 稱,很多人以為小程序是微信先推出的,其實 DCloud 才是這個行業(yè)的始作俑者。DCloud于2012年開始研發(fā)小程序技術(shù),優(yōu)化webview的功能和性能,并加入W3C和HTML5中國產(chǎn)業(yè)聯(lián)盟,推出了HBuilder開發(fā)工具,為后續(xù)產(chǎn)業(yè)化做準備。2015年,DCloud正式商用了自己的小程序,產(chǎn)品名為“流應(yīng)用”,它不是B/S模式的輕應(yīng)用,而是能接近原生功能、性能的動態(tài)App,并且即點即用。
02
功能架構(gòu)圖
4.編譯到小程序能力通過縫合美團前端團隊的mp-vue實現(xiàn)。
5.原生渲染能力通過縫合阿里巴巴團隊的weex實現(xiàn)。
6.uniapp提供向微信小程序看齊的內(nèi)置組件和api。
7.得益于雙線程模型導(dǎo)致的渲染性能劣勢,uniapp使用webview渲染APP時性能亦不如傳統(tǒng)的5+Hybrid模式
03
創(chuàng)建項目及初始化步驟
04
啟動小程序
最好現(xiàn)在uniapp中配置一下小程序的appid 否則可能會出現(xiàn)啟動不了的情況
步驟:
微信公眾平臺查看自己的小程序id 開發(fā) → 開發(fā)管理 → 開發(fā)設(shè)置 → 找到appid
05
目錄結(jié)構(gòu)
1)pages
更多詳細介紹:uni-app官網(wǎng)
每次想要在pages里新加一個頁面 都要在pages.json里配置一下
下面列舉一些常用 style 配置項,一般情況下足以開發(fā),更多:uni-app官網(wǎng)
2)APP.vue
●onLunch只會在進入程序的時候執(zhí)行一次,一般搭配搭建或等獲取微信公眾號的code,想要app.vue調(diào)取methods 的方法記得用 getApp.方法名( )。
●globalData:常用于定義一些公共的變量、例如圖片路徑資源、手機是否是ios或安卓。
使用 :現(xiàn)在js中引入
1.import app from ‘@/App.vue’
2.platform: app.globalData.platform
●style 定義公共的全局樣式,例如垂直水平居中、布局、公共類目樣式都可以定義。
3)頁面生命周期
4)組件生命周期
uni-app 組件支持的生命周期,與vue標準組件的生命周期相同。這里沒有頁面級的onLoad等生命周期 如果想要發(fā)送請求 可以在子組件的生命周期去執(zhí)行
5)底部導(dǎo)航
官方文檔:uni-app官網(wǎng)
06
uniapp使用的優(yōu)點和缺點
●優(yōu)點:
1)多端支持
當然是多端開發(fā)啦,uni-app是一套可以適用多端的開源框架,一套代碼可以同時生成ios,Android,H5,微信小程序,支付寶小程序,百度小程序等。
2)更新迭代快
用了它的Hbx你就知道,經(jīng)常會右下角會彈出讓你更新,沒錯,看到它經(jīng)常更新,這么努力的在先進與優(yōu)化,還是選良心的了。
3)擴張強
你可以把輕松的把uniapp編譯到你想要的端,也可以把其它端的轉(zhuǎn)換成uniapp,例如微信小程序,h5等;如果開發(fā)app的時候,前端表現(xiàn)不夠,你還可以原生嵌套開發(fā)。
4)開發(fā)成本、門檻低
不管你是公司也好,個人也好,如果你想開發(fā)多終端兼容的移動端,那uniapp就很適合你。
5)組件豐富
社區(qū)還是比較成熟,生態(tài)好,組件豐富,支持npm方式安裝第三方包,兼容mpvue,DCloud有大量的組件供你使用。
●缺點:
1)爬坑
每個程序前期肯定都會有很多的坑,一般的都有人解決了,沒解決的,你就要慢慢的去琢磨了,官方bug的話,提交反饋,等官方修復(fù)。
2)某些組件不成熟
我說的是某些官方組件,像什么地圖組件,直播組件等,你要在上面開發(fā)一些特別功能的話,可能還要話費很多時間。
3)nvue有點蛋疼
某些組件或某些功能,官方明確說,建議用nvue開發(fā),那么問題來了,nvue有很多的局限,特別是css,很多都不支持,什么文字只能是text,只支持class樣式,很多都需要看文檔。
07
開發(fā)規(guī)范
uni-app 使用vue的語法結(jié)合小程序的標簽和API。為了實現(xiàn)多端兼容,綜合考慮編譯速度、運行性能等因素,uni-app 約定了如下開發(fā)規(guī)范:
1.uniapp的頁面開發(fā)遵循 Vue 單文件組件 (SFC) 規(guī)范。另外,uniapp不能使用js進行html文檔的DOM操作,請嚴格遵循vue的MVVM的數(shù)據(jù)綁定開發(fā)方式。
●一個vue的文件中只能包含一個頂級的模板
●一個vue文件只能包含一個腳本定義
●一個vue文件可以包含一個或多個樣式定義
2.組件標簽靠近小程序規(guī)范,需要注意的是,在uniapp中不能使用標準的html標簽,uniapp組件名稱及使用方式的定義更貼近微信小程序,優(yōu)先參考:uni-app 組件文檔,可以輔助參考微信小程序組件文檔。比如:
●<view>標簽在uniapp中的含義與標準html中的標簽?zāi)芰ο喈?/p>
●如果你希望定義圖片,不能直接使用html中的img,你應(yīng)該使用uniapp的組件標簽image。
uniapp的接口能力(JS API)非常接近微信小程序規(guī)范,但需將前綴 wx 替換為 uni,詳見uni-app接口規(guī)范
3.Css樣式規(guī)范
uni.scss文件中預(yù)置了一些全局樣式scss變量,這些變量用于定義應(yīng)用的整體樣式風格,比如:文字顏色、背景顏色、邊框顏色等等。需要注意的是這個文件不要隨意修改,如果要更改的話只能修改變量的值,不要修改變量的名。那么如果我們希望增加一些自定義的全局樣式,應(yīng)該怎么去做呢?參考下面的方法:
●首先,自己寫一個樣式文件,比如:app.scss ,該文件中自定義樣式書寫。將該文件放置于/static/style目錄下;
●其次在app.scss文件的開頭,引入uni.scss文件,引入語句為:@import '~@/uni.scss';
●最后在App,vue的樣式中,引入這個自定義全局樣式文件數(shù)據(jù)綁定及事件處理同 Vue.js 規(guī)范,同時補充了App及頁面的生命周期。
uniapp的局部樣式實現(xiàn)是以vue文件為單位的,在某個vue文件內(nèi)定義的樣式,只在該vue的渲染范圍內(nèi)生效。
4.為兼容多端運行,建議使用flex布局進行開發(fā)
5.字體的使用
uniapp支持字體的引用方式分為2種情況,如果字體文件小于 40kb,uniapp會自動將其轉(zhuǎn)化為 base64 格式;將字體文件放置到static目錄下,然后通過font-face定義字體。
如果字體文件大于等于 40kb, 需開發(fā)者自己轉(zhuǎn)換將字體文件轉(zhuǎn)換成Base64字符串,否則使用將不生效;將轉(zhuǎn)換之后的Base64字符串粘貼到下文的位置,完成字體的定義。
字體的使用方式是通用的css樣式,使用font-family即可。
08
UI組件庫推薦
●uView框架
官網(wǎng)鏈接:
https://www.uviewui.com/
●uni-ui
官網(wǎng)地址
uniapp官網(wǎng):
https://uniapp.dcloud.net.cn/component/uniui/quickstart.html
下載地址:
https://ext.dcloud.net.cn/plugin?id=55
微信公眾號
業(yè)務(wù)咨詢:400-9969-069(24小時服務(wù)) 028-86052918
售后熱線:028-86052836
公司地址:成都市武侯區(qū)天益街38號理想中心3棟1810